/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Time;
import java.util.ArrayList;
import javax.faces.model.SelectItem;

/**
 *
 * @author VICTOR
 */
public class DetalleCursoDocente {
    private int idDetCurso;
    private Curso objCurso=new Curso();
    private Docente objDocente=new Docente();
    private Aula objAula= new Aula();
    private String seccion;
    private int duracion;
    private Time horaInicio;
    private Time horaFin;
    private String semestre;
    private int inscritos;
    private int capacidad;

    public DetalleCursoDocente() {
    }

    public int getDuracion() {
        return duracion;
    }

    public void setDuracion(int duracion) {
        this.duracion = duracion;
    }

    public Time getHoraFin() {
        return horaFin;
    }

    public void setHoraFin(Time horaFin) {
        this.horaFin = horaFin;
    }

    public Time getHoraInicio() {
        return horaInicio;
    }

    public void setHoraInicio(Time horaInicio) {
        this.horaInicio = horaInicio;
    }

    public int getIdDetCurso() {
        return idDetCurso;
    }

    public void setIdDetCurso(int idDetCurso) {
        this.idDetCurso = idDetCurso;
    }

    public Curso getObjCurso() {
        return objCurso;
    }

    public void setObjCurso(Curso objCurso) {
        this.objCurso = objCurso;
    }

    public Docente getObjDocente() {
        return objDocente;
    }

    public void setObjDocente(Docente objDocente) {
        this.objDocente = objDocente;
    }

    public Aula getObjAula() {
        return objAula;
    }

    public void setObjAula(Aula objAula) {
        this.objAula = objAula;
    }

    public String getSeccion() {
        return seccion;
    }

    public void setSeccion(String seccion) {
        this.seccion = seccion;
    }

    public String getSemestre() {
        return semestre;
    }

    public void setSemestre(String semestre) {
        this.semestre = semestre;
    }

    public int getInscritos() {
        return inscritos;
    }

    public void setInscritos(int inscritos) {
        this.inscritos = inscritos;
    }

    public int getCapacidad() {
        return capacidad;
    }

    public void setCapacidad(int capacidad) {
        this.capacidad = capacidad;
    }
    
    
    public static ArrayList<DetalleCursoDocente> getListarProgramacionAcademica(){
     
        int escuela=2;
        ArrayList<DetalleCursoDocente> arreglo=null;
        ResultSet rs=null;
        DetalleCursoDocente obj=null;
        Connection conexion = null;
        try{
           conexion = ControladorBD.darConexionBD();
           conexion.setAutoCommit(false);
           conexion = ControladorBD.darConexionBD();
            CallableStatement st = conexion.prepareCall( "{CALL sp_curso_lista_programacion_academica(?)}");
            st.setInt(1,escuela);
            rs = st.executeQuery();
            if (rs.next()){
               arreglo=new ArrayList<DetalleCursoDocente>();   
                do{
                        obj =new DetalleCursoDocente(); 
                        obj.getObjCurso().setIdCurso(rs.getString("idCurso"));      
                        obj.getObjCurso().setNombre(rs.getString("nombre"));
                        obj.setSeccion(rs.getString("seccion"));
                        obj.getObjAula().setNombre(rs.getString("aula"));
                        obj.setCapacidad(rs.getInt("capacidad"));
                        obj.setInscritos(rs.getInt("inscritos"));
                        arreglo.add(obj);
                }while (rs.next());
            }
            st.close();
            conexion.setAutoCommit(true);
            conexion.close();
        }catch(Exception error){
            System.out.println("Error en el metodo por: " + error.getMessage());
            error.printStackTrace();
        }
        return arreglo;

    }
    
    /*
     * Cargar Combo 
     */
    public ArrayList<SelectItem>getCargarComboCurso(){         
    ArrayList<SelectItem> arrayNivel = new ArrayList<SelectItem>();
    Connection conexion = null;
    ResultSet rs = null;
    
    int escuela=2;
    String semestre="2013-02";
    try{
        conexion = ControladorBD.darConexionBD();
        CallableStatement st = conexion.prepareCall( "{CALL sp_curso_listar_reg_Dmatricula(?,?)}");
        st.setInt(1,escuela);
        st.setString(2,semestre);
        rs = st.executeQuery();        
        if (rs.next()){    
            do{
                arrayNivel.add(new SelectItem(rs.getInt("idDetCurso"), 
                        rs.getString("seccion")+"-"+ rs.getString("nombre")+"-"+rs.getString("descripcion")
                ));              
            } while (rs.next());
        }  
        rs.close();
        st.close();
        conexion.close();

     }catch(Exception error){
        System.out.println("Error en el metodo por: " +
              error.getMessage());
              error.printStackTrace();
        }    
      
    return arrayNivel;
    }
    
}
